package iut2.sponsor.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;

/**
 * Classe heritant de VerticalPanel gerant le contenu du site (panel central du dock principal) en 
 * utilisant les differentes vues de l'application
 *
 */
public class Contenu extends VerticalPanel {
	
	private static final Lang lang    = (Lang) GWT.create(Lang.class);

	/**
	 * Constructeur pour appliquer les caracteristiques visuelles du contenu et afficher la vue par defaut
	 */
	public Contenu() {
		afficherVueAccueil();
		this.setWidth("825px");
		this.setStyleName("contenu");
		this.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP);
		this.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
	}
	
	/**
	 * affiche la vue de la page d'accueil
	 */
	public void afficherVueAccueil() {
		this.clear();
		
		tete();
		
		Label titre = new Label();
		titre.setText(lang.bienvenue());
		titre.setStyleName("titre");
		this.add(titre);
		HTML texte = new HTML("<br />" + lang.premier());
		this.add(texte);
		Window.setTitle(lang.bienvenue());
	}
	
	/**
	 * affiche la vue de la liste des sponsors enregistres
	 */
	public void afficherVueListeSponsor() {
		this.clear();
		
		tete();
		
		VueListeSponsor vue = new VueListeSponsor();
		VerticalPanel pan = (VerticalPanel)vue.getPanel();
		pan.setStyleName("contenu_in");
		this.add(pan);
		Window.setTitle(lang.listSp());
	}
	
	/**
	 * affiche la vue permettant d'enregistrer un nouveau sponsor
	 */
	public void afficherVueAjoutSponsor() {
		this.clear();
		
		tete();
		
		VueAjoutSponsor vue = new VueAjoutSponsor();
		VerticalPanel pan = (VerticalPanel)vue.getPanel();
		pan.setStyleName("contenu_in");
		this.add(pan);
		Window.setTitle(lang.ajoutSp());
	}
	
	/**
	 * afficher la vue listant tous les lots enregistres
	 */
	public void afficherVueLots() {
		this.clear();
		
		tete();
		
		VueLots vue = new VueLots();
		VerticalPanel pan = (VerticalPanel)vue.getPanel();
		pan.setStyleName("contenu_in");
		this.add(pan);
		Window.setTitle(lang.lotsRecoltes());
	}
	
	/**
	 * affiche la vue listant tous les montants offerts par les sponsors
	 */
	public void afficherVueMontants() {
		this.clear();
		
		tete();
		
		VueMontant vue = new VueMontant();
		VerticalPanel pan = (VerticalPanel)vue.getPanel();
		pan.setStyleName("contenu_in");
		this.add(pan);
		Window.setTitle(lang.montRecoltes());
	}
	
	/**
	 * affiche la vue permettant de voir le flyer de l'association avec les logos des sponsors ayant donne de l'argent
	 */
	public void afficherVueFlyer() {
		this.clear();
		
		tete();
		
		VueFlyer vue = new VueFlyer();
		VerticalPanel pan = (VerticalPanel)vue.getPanel();
		pan.setStyleName("contenu_in");
		this.add(pan);
		Window.setTitle(lang.flyer());
	}
	
	/**
	 * affiche le haut du contenu (zone avec l'entete bleu)
	 */
	public void tete() {
		VerticalPanel tete = new VerticalPanel();
		tete.setSize("823px","22px");
		tete.setStyleName("tete_contenu");
		this.add(tete);
	}
}
